package mvc.library;

import java.util.List;

import mvc.core.impl.MachuImage;


/**
 * Interface that specifies what a library implementation must be able to perform.
 * @author joellundell
 *
 */
public interface ILibrary{

	public ILibrary getInstance();
	
	/**
	 * Returns the list with images in the library
	 * @return List<MachuImage>
	 */
	public List<MachuImage> getImageList();	
	
	/**
	 * Remove image from library
	 * @param image Image to be removed
	 */
	public void remove(MachuImage image);

	/**
	 * Add image to library
	 * @param image Image do be added
	 */
	public void add(MachuImage image);

	/**
	 * Set the list with images that is selected by the user.
	 * @param list List<MachuImage> with images selected by the user
	 */
	public void setSelectedImages(List<MachuImage> list);
	
	/**
	 * Returns the images set as selected by the user
	 * @return List<MachuImage>
	 */
	public List<MachuImage> getSelectedImages();
}


